package com.atguigu.spzx.model.exception;

import com.atguigu.spzx.model.vo.common.ResultCodeEnum;
import lombok.Getter;

//Exception:编译时异常  必须try-catch
//RuntimeException: 运行时异常  无需try-catch      项目中的异常一般不处理 抛出给全局异常处理器处理
@Getter
public class SpzxException extends RuntimeException{
    //出现异常时 我们希望给前端的状态码
    private Integer code;
    //出现异常时 我们希望给前端的状态码提示信息
    private String message;
    //出现异常时 真正的异常对象，可能有(真的出现异常) 也可能没有(业务判断手动抛出的异常)
    private Throwable e;

    public SpzxException(Integer code,String message){
        this(code , message,null);
    }
    public SpzxException(ResultCodeEnum codeEnum){
        this(codeEnum.getCode() , codeEnum.getMesssage(),null);
    }

    public SpzxException(ResultCodeEnum codeEnum ,Throwable e ){
        this(codeEnum.getCode() , codeEnum.getMesssage(),e);
    }
    public SpzxException(Integer code,String message,Throwable e){
        this.code = code;
        this.message = message;
        this.e = e;
    }

}
